Cloud computing is a ubiquitous tool by which virtual computing resources and services are provided to companies and other entities. Cloud computing can offer many advantages to a client company including relatively quick, efficient, and inexpensive upgradability and scalability of computing resources as the needs of the client company changes over time. In cloud computing, infrastructure, platform, and/or software may be provided by a cloud computing provider to the client company as a “service” over a network (i.e., over the “cloud”). For example, rather than having independent software packages loaded on each of the client company's computers, the software may be provided to the client company as a service accessible by any of the client company's computers using a web browser or associated lightweight application.
The cloud computing provider typically manages one or more data centers, which facilitate access to computing resources and services by the client company. Each data center may include one or more data servers (e.g., web servers, application servers, etc.) and one or more load balancers to balance the workload from the client company computers across the data servers using a load balancing algorithm (or one or more “global load balancers” to balance the workload across the data centers). As the computing needs of the client company grows, additional data servers and/or data centers may be added to the company's cloud computing resources to satisfy the increased computing needs. To support multiple, contemporaneous access to the virtual computing resources and services by the company client computers, each data server may include a local copy of data used by the computing resources/services. To ensure each data server has access to a complete copy of the stored data, the data is periodically replicated across the data servers.